package cn.agiledata.bank.common.util;

import java.util.List;

import cn.agiledata.bank.common.servlet.InitForString;
import cn.agiledata.bank.hibernateBean.Sysbook;

/**
 * 系统数据字典工具类
 */
public final class SysbookUtil {

    private SysbookUtil() {
    }

    /**
     * 获取指定字典列表中listId值为指定listId的sysbook的名称。 如果无法找到相应的sysbook，则返回""
     * 
     * @param sysbooks
     *            某特定类型关键字的sysbook字典列表
     * @param listId
     *            代表sysbook的listId值
     * 
     * @return 指定字典列表中listId值为指定listId的sysbook的名称
     */
    public static String getName(Sysbook[] sysbooks, String listId) {
        for (int i = 0; (i < sysbooks.length); i++) {
            if (sysbooks[i].getId().getListId().equals(listId)) {
                return sysbooks[i].getListName();
            }
        }
        return "";
    }

    /**
     * 获取指定字典列表中listId值为指定listId的sysbook的顺序号。 如果无法找到相应的sysbook，则返回-1
     * 
     * @param sysbooks
     *            某特定类型关键字的sysbook字典列表
     * @param listId
     *            代表sysbook的listId值
     * 
     * @return 指定listId代表的sysbook在指定字典列表中的顺序号
     */
    public static int getSequence(Sysbook[] sysbooks, String listId) {
        for (int i = 0; (i < sysbooks.length); i++) {
            if (sysbooks[i].getId().getListId().equals(listId)) {
                return sysbooks[i].getListSeq().intValue();
            }
        }
        return -1;
    }

    /**
     * 根据类型关键字获取sysbook字典列表
     * 
     * @param typeId
     *            类型关键字
     * @return sysbook字典列表
     */
    public static Sysbook[] getSysbooks(String typeId) {
        List sysbookList = (List) InitForString.dataDictMap.get(typeId);
        if (sysbookList == null)
            return new Sysbook[0];
        return (Sysbook[]) sysbookList.toArray(new Sysbook[0]);
    }

    /**
     * 
     * @return 交易状态sysbook字典列表
     */
    public static Sysbook[] getTransStatuses() {
        return getSysbooks("TRANS_STATUS");
    }

}
